package com.tinet.autentia.autentificador.svc;

import java.util.List;

import javax.ejb.Remote;

import cl.tinet.trainee.tarea6.exception.UsuarioNoExisteException;

import com.tinet.autentia.autentificador.model.Usuario;


/**
 * Manejador de usuarios.
 * 
 * @author FMendoza.
 * 
 */
@Remote
public interface UsuarioBean {

	/**
	 * Buscar un usuario especifico.
	 * 
	 * @param usuario
	 *            Uusario a buscar.
	 * @return Null si el usuario no existe, en caso contrario retorna el
	 *         usuario encontrado.
	 * @throws UsuarioNoExisteException
	 *             cuando el usuario no se encuentra en la sesion.
	 */
	Usuario buscarUsuario(Usuario usuario) throws UsuarioNoExisteException;

	/**
	 * Encargado de agrea un usuario a la lista.
	 * 
	 * @param usuario
	 *            Usuario a agregar.
	 * @return <code>true</code> si se pudo agregar el usuario.
	 */
	boolean agregar(Usuario usuario);

	/**
	 * Obtiene una lista de los usuarios en sesion.
	 * 
	 * @return Listado de usuarios.
	 */
	List<Usuario> listar();
}
